package jp.vmi.selenium.selenese;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
import org.apache.commons.lang3.StringEscapeUtils;
import org.junit.Test;
import static java.lang.System.*;
@SuppressWarnings("javadoc")
public class DumpEnvTest {
private void indent(int n) {
for (int i = 0; i < n; i++)
out.print(' ');
}
private void printEntry(String key, String value, int indent) {
indent(indent);
out.printf("%s=[", key);
if (key.endsWith(".class.path")) {
for (String path : value.split(File.pathSeparator)) {
out.print('\n');
indent(indent + 2);
out.print(path);
}
out.print('\n');
indent(indent);
out.print("]\n");
} else {
out.printf("[%s]\n", StringEscapeUtils.escapeJava(value));
}
}
private void dumpEntries(String title, Map<?, ?> map) {
out.printf("###[%s]\n", title);
List<Object> list = new ArrayList<Object>(map.entrySet());
Collections.sort(list, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
@SuppressWarnings("unchecked")
Entry<String, String> e1 = (Entry<String, String>) o1;
@SuppressWarnings("unchecked")
Entry<String, String> e2 = (Entry<String, String>) o2;
return e1.getKey().compareTo(e2.getKey());
}
});
for (Object o : list) {
@SuppressWarnings("unchecked")
Entry<String, String> e = (Entry<String, String>) o;
printEntry(e.getKey(), e.getValue(), 3);
}
}
@Test
public void dumpEnv() {
Properties props = getProperties();
Map<String, String> env = getenv();
dumpEntries("Properties", props);
dumpEntries("EnvironmentVariables", env);
}
}